package com.ljh.lottery.service;

import com.ljh.lottery.pojo.dataobject.WinningRecordDO;
import com.ljh.lottery.pojo.request.DrawPrizeRequest;
import com.ljh.lottery.pojo.request.WinningRecordsRequest;
import com.ljh.lottery.pojo.response.WinningRecordsResponse;
import com.ljh.lottery.service.dto.WinningRecordsDTO;

import java.util.List;

/**
 * @author: Themberfue
 * @date: 2025/4/16 17:05
 * @description:
 */
public interface DrawPrizeService {

    /**
     * 抽奖
     * @param param 抽奖参数请求
     */
    void drawPrize(DrawPrizeRequest param);

    /**
     * 校验抽奖请求
     * @param param 抽奖参数请求
     */
    Boolean checkDrawPrizeParam(DrawPrizeRequest param);

    /**
     * 保存中奖名单
     * @param param 抽奖参数请求
     * @return 中奖记录名单
     */
    List<WinningRecordDO> saveWinnerRecords(DrawPrizeRequest param);

    /**
     * 删除中奖者名单
     * @param activityId 活动 id
     * @param prizeId 奖品 id
     */
    void deleteRecords(Long activityId, Long prizeId);

    /**
     * 获取完整的中奖记录名单
     * @param param 活动请求参数
     * @return 完整的中奖记录名单
     */
    List<WinningRecordsDTO> getWinningRecords(WinningRecordsRequest param);
}
